MCU PIC16F689 的编译器 和 编译错误处理

简述

公司让改一个PIC16F589的固件,增加一些功能模式的选择等,难的不在于怎么改这些东西,这些东西只要读读程序,理解下原来的构架思路,很容易写出来。
难的地方在编译器和开发环境。
之前也搞过PIC18F4520的事情,对PIC单片机编译环境的复杂难用深有感触。
现在要搞这个PIC16F的单片机,配置环境花了一天时间,主要是一开始给我的源程序就是错误的版本,后来找到问题所在,拿到了正确的源程序,
又下载到了2个月试用期的HI tech PICC编译器pro版本,才能够基本上编译。
编译器版本是:

MAPLAB IDE v8.86 and the compiler is :
HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode) V9.81

Copyright (C) 2010 Microchip Technology Inc.

Licensed for evaluation purposes only.

This license will expire on Thu, 31 Jul 2014.

可能由于版本原因出现了一些编译错误,记录如下:

  1. undefined symbol “OPTION”,这个寄存器改为 OPTION_REG
  2. undefined symbol“GODONE”,这个寄存器改为 GO_DONE
  3. undefined symbol“RABPU”,这个寄存器必须要在main.c开头定义 #define _LEGACY_HEADERS
  4. undefined symbol”timeout”,从pic.h头文件中找到了timeout的定义,这个变量只有在定义了RESETBITS_ADDR后才会定义,
    查找数据手册,在mian.c开头定义 #define __RESETBITS_ADDR 0x83

  5. Failed to load K:\pcfiles....cof
    这个是因为早MPlab中设定了输出路径,但是本地电脑没有这个路径就没办法输出了。
    porject->Build Options->project将输出路径中的设置删除掉,就不会再往那个文件夹输出,而是直接输出在工程文件夹,就不会报错了。